+; UltimateKEYS - 2020-04-04.ahk\r
+\r
+; Created by : Pieter Degroote\r
+\r
+; License : GNU General Public License Version 3\r
+\r
+; Website : https://github.com/pieter-degroote/UltimateKEYS\r
+\r
+\r
+; Requirements :\r
+\r
+; Keyboard layout (on Windows OS) : US QWERTY\r
+\r
+; AutoHotkey v1.1 (https://www.autohotkey.com/)\r
+\r
+\r
+\r
+; Dead Key : Circumflex Accent\r
+\r
+dkCircumflex := ComObjCreate("Scripting.Dictionary")\r
+dkCircumflex.item("a") := "â" ; a with circumflex\r
+dkCircumflex.item("A") := "Â" ; A with circumflex\r
+dkCircumflex.item("c") := "ĉ" ; c with circumflex\r
+dkCircumflex.item("C") := "Ĉ" ; C with circumflex\r
+dkCircumflex.item("e") := "ê" ; e with circumflex\r
+dkCircumflex.item("E") := "Ê" ; E with circumflex\r
+dkCircumflex.item("g") := "ĝ" ; g with circumflex\r
+dkCircumflex.item("G") := "Ĝ" ; G with circumflex\r
+dkCircumflex.item("h") := "ĥ" ; h with circumflex\r
+dkCircumflex.item("H") := "Ĥ" ; H with circumflex\r
+dkCircumflex.item("i") := "î" ; i with circumflex\r
+dkCircumflex.item("I") := "Î" ; I with circumflex\r
+dkCircumflex.item("j") := "ĵ" ; j with circumflex\r
+dkCircumflex.item("J") := "Ĵ" ; J with circumflex\r
+dkCircumflex.item("o") := "ô" ; o with circumflex\r
+dkCircumflex.item("O") := "Ô" ; O with circumflex\r
+dkCircumflex.item("s") := "ŝ" ; s with circumflex\r
+dkCircumflex.item("S") := "Ŝ" ; S with circumflex\r
+dkCircumflex.item("u") := "û" ; u with circumflex\r
+dkCircumflex.item("U") := "Û" ; U with circumflex\r
+dkCircumflex.item("w") := "ŵ" ; w with circumflex\r
+dkCircumflex.item("W") := "Ŵ" ; W with circumflex\r
+dkCircumflex.item("y") := "ŷ" ; y with circumflex\r
+dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex\r
+dkCircumflex.item("z") := "ẑ" ; z with circumflex\r
+dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex\r
+dkCircumflex.item("n") := "₦" ; Nigerian naira\r
+dkCircumflex.item("N") := "₦" ; Nigerian naira\r
+dkCircumflex.item("^") := "{^}" ; circumflex accent\r
+dkCircumflex.item(" ") := "{^}" ; circumflex accent\r
+\r
+\r
+; Dead Key : Caron\r
+\r
+dkCaron := ComObjCreate("Scripting.Dictionary")\r
+dkCaron.item("a") := "ǎ" ; a with caron\r
+dkCaron.item("A") := "Ǎ" ; A with caron\r
+dkCaron.item("c") := "č" ; c with caron\r
+dkCaron.item("C") := "Č" ; C with caron\r
+dkCaron.item("d") := "ď" ; d with caron\r
+dkCaron.item("D") := "Ď" ; D with caron\r
+dkCaron.item("e") := "ě" ; e with caron\r
+dkCaron.item("E") := "Ě" ; E with caron\r
+dkCaron.item("g") := "ǧ" ; g with caron\r
+dkCaron.item("G") := "Ǧ" ; G with caron\r
+dkCaron.item("h") := "ȟ" ; h with caron\r
+dkCaron.item("H") := "Ȟ" ; H with caron\r
+dkCaron.item("i") := "ǐ" ; i with caron\r
+dkCaron.item("I") := "Ǐ" ; I with caron\r
+dkCaron.item("j") := "ǰ" ; j with caron\r
+dkCaron.item("k") := "ǩ" ; k with caron\r
+dkCaron.item("K") := "Ǩ" ; K with caron\r
+dkCaron.item("l") := "ľ" ; l with caron\r
+dkCaron.item("L") := "Ľ" ; L with caron\r
+dkCaron.item("n") := "ň" ; n with caron\r
+dkCaron.item("N") := "Ň" ; N with caron\r
+dkCaron.item("o") := "ǒ" ; o with caron\r
+dkCaron.item("O") := "Ǒ" ; O with caron\r
+dkCaron.item("r") := "ř" ; r with caron\r
+dkCaron.item("R") := "Ř" ; R with caron\r
+dkCaron.item("s") := "š" ; s with caron\r
+dkCaron.item("S") := "Š" ; S with caron\r
+dkCaron.item("t") := "ť" ; t with caron\r
+dkCaron.item("T") := "Ť" ; T with caron\r
+dkCaron.item("u") := "ǔ" ; u with caron\r
+dkCaron.item("U") := "Ǔ" ; U with caron\r
+dkCaron.item("ü") := "ǚ" ; u with diaeresis and caron\r
+dkCaron.item("Ü") := "Ǚ" ; U with diaeresis and caron\r
+dkCaron.item("z") := "ž" ; z with caron\r
+dkCaron.item("Z") := "Ž" ; Z with caron\r
+dkCaron.item("3") := "ǯ" ; small letter ezh with caron\r
+dkCaron.item("#") := "Ǯ" ; capital letter ezh with caron\r
+dkCaron.item(" ") := "ˇ" ; caron\r
+\r
+\r
+; Dead Key : Ring/Dot Above\r
+\r
+dkRingDotAbove := ComObjCreate("Scripting.Dictionary")\r
+dkRingDotAbove.item("a") := "ȧ" ; a with dot above\r
+dkRingDotAbove.item("A") := "Ȧ" ; A with dot above\r
+dkRingDotAbove.item("ä") := "å" ; a with ring above\r
+dkRingDotAbove.item("Ä") := "Å" ; A with ring above\r
+dkRingDotAbove.item("b") := "ḃ" ; b with dot above\r
+dkRingDotAbove.item("B") := "Ḃ" ; B with dot above\r
+dkRingDotAbove.item("c") := "ċ" ; c with dot above\r
+dkRingDotAbove.item("C") := "Ċ" ; C with dot above\r
+dkRingDotAbove.item("d") := "ḋ" ; d with dot above\r
+dkRingDotAbove.item("D") := "Ḋ" ; D with dot above\r
+dkRingDotAbove.item("e") := "ė" ; e with dot above\r
+dkRingDotAbove.item("E") := "Ė" ; E with dot above\r
+dkRingDotAbove.item("f") := "ḟ" ; f with dot above\r
+dkRingDotAbove.item("F") := "Ḟ" ; F with dot above\r
+dkRingDotAbove.item("g") := "ġ" ; g with dot above\r
+dkRingDotAbove.item("G") := "Ġ" ; G with dot above\r
+dkRingDotAbove.item("h") := "ḣ" ; h with dot above\r
+dkRingDotAbove.item("H") := "Ḣ" ; H with dot above\r
+dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani)\r
+dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani)\r
+dkRingDotAbove.item("j") := "ȷ" ; dotless j\r
+dkRingDotAbove.item("l") := "ŀ" ; l with middle dot\r
+dkRingDotAbove.item("L") := "Ŀ" ; L with middle dot\r
+dkRingDotAbove.item("m") := "ṁ" ; m with dot above\r
+dkRingDotAbove.item("M") := "Ṁ" ; M with dot above\r
+dkRingDotAbove.item("n") := "ṅ" ; n with dot above\r
+dkRingDotAbove.item("N") := "Ṅ" ; N with dot above\r
+dkRingDotAbove.item("o") := "ȯ" ; o with dot above\r
+dkRingDotAbove.item("O") := "Ȯ" ; O with dot above\r
+dkRingDotAbove.item("p") := "ṗ" ; p with dot above\r
+dkRingDotAbove.item("P") := "Ṗ" ; P with dot above\r
+dkRingDotAbove.item("r") := "ṙ" ; r with dot above\r
+dkRingDotAbove.item("R") := "Ṙ" ; R with dot above\r
+dkRingDotAbove.item("s") := "ṡ" ; s with dot above\r
+dkRingDotAbove.item("S") := "Ṡ" ; S with dot above\r
+dkRingDotAbove.item("t") := "ṫ" ; t with dot above\r
+dkRingDotAbove.item("T") := "Ṫ" ; T with dot above\r
+dkRingDotAbove.item("u") := "ů" ; u with ring above\r
+dkRingDotAbove.item("U") := "Ů" ; U with ring above\r
+dkRingDotAbove.item("w") := "ẇ" ; w with dot above\r
+dkRingDotAbove.item("W") := "Ẇ" ; W with dot above\r
+dkRingDotAbove.item("å") := "ẘ" ; w with ring above\r
+dkRingDotAbove.item("x") := "ẋ" ; x with dot above\r
+dkRingDotAbove.item("X") := "Ẋ" ; X with dot above\r
+dkRingDotAbove.item("y") := "ẏ" ; y with dot above\r
+dkRingDotAbove.item("Y") := "Ẏ" ; Y with dot above\r
+dkRingDotAbove.item("ÿ") := "ẙ" ; y with ring above\r
+dkRingDotAbove.item("z") := "ż" ; z with dot above\r
+dkRingDotAbove.item("Z") := "Ż" ; Z with dot above\r
+dkRingDotAbove.item(" ") := "˙" ; dot above\r
+\r
+\r
+; Dead Key : Macron/Stroke\r
+\r
+dkMacronStroke := ComObjCreate("Scripting.Dictionary")\r
+dkMacronStroke.item("a") := "ā" ; a with macron\r
+dkMacronStroke.item("A") := "Ā" ; A with macron\r
+dkMacronStroke.item("æ") := "ǣ" ; ae with macron\r
+dkMacronStroke.item("Æ") := "Ǣ" ; AE with macron\r
+dkMacronStroke.item("b") := "ƀ" ; b with stroke\r
+dkMacronStroke.item("B") := "Ƀ" ; B with stroke\r
+dkMacronStroke.item("d") := "đ" ; d with stroke\r
+dkMacronStroke.item("D") := "Đ" ; D with stroke\r
+dkMacronStroke.item("e") := "ē" ; e with macron\r
+dkMacronStroke.item("E") := "Ē" ; E with macron\r
+dkMacronStroke.item("g") := "ǥ" ; g with stroke (Skolt Sami)\r
+dkMacronStroke.item("G") := "Ǥ" ; G with stroke (Skolt Sami)\r
+dkMacronStroke.item("é") := "ḡ" ; g with macron\r
+dkMacronStroke.item("É") := "Ḡ" ; G with macron\r
+dkMacronStroke.item("h") := "ħ" ; h with stroke (Maltese)\r
+dkMacronStroke.item("H") := "Ħ" ; H with stroke (Maltese)\r
+dkMacronStroke.item("i") := "ī" ; i with macron\r
+dkMacronStroke.item("I") := "Ī" ; I with macron\r
+dkMacronStroke.item("ï") := "ɨ" ; i with stroke\r
+dkMacronStroke.item("Ï") := "Ɨ" ; I with stroke\r
+dkMacronStroke.item("j") := "ɉ" ; j with stroke\r
+dkMacronStroke.item("J") := "Ɉ" ; J with stroke\r
+dkMacronStroke.item("l") := "ł" ; l with stroke\r
+dkMacronStroke.item("L") := "Ł" ; L with stroke\r
+dkMacronStroke.item("ø") := "ḻ" ; l with line below\r
+dkMacronStroke.item("Ø") := "Ḻ" ; L with line below\r
+dkMacronStroke.item("o") := "ō" ; o with macron\r
+dkMacronStroke.item("O") := "Ō" ; O with macron\r
+dkMacronStroke.item("ö") := "ǭ" ; o with ogonek and macron\r
+dkMacronStroke.item("Ö") := "Ǭ" ; O with ogonek and macron\r
+dkMacronStroke.item("p") := "ᵽ" ; p with stroke\r
+dkMacronStroke.item("P") := "Ᵽ" ; P with stroke\r
+dkMacronStroke.item("r") := "ɍ" ; r with stroke\r
+dkMacronStroke.item("R") := "Ɍ" ; R with stroke\r
+dkMacronStroke.item("t") := "ŧ" ; t with stroke\r
+dkMacronStroke.item("T") := "Ŧ" ; T with stroke\r
+dkMacronStroke.item("u") := "ū" ; u with macron\r
+dkMacronStroke.item("U") := "Ū" ; U with macron\r
+dkMacronStroke.item("ü") := "ʉ" ; u with bar\r
+dkMacronStroke.item("Ü") := "Ʉ" ; U with bar\r
+dkMacronStroke.item("y") := "ȳ" ; y with macron\r
+dkMacronStroke.item("Y") := "Ȳ" ; Y with macron\r
+dkMacronStroke.item("ÿ") := "ɏ" ; y with stroke\r
+dkMacronStroke.item("Ÿ") := "Ɏ" ; Y with stroke\r
+dkMacronStroke.item("z") := "ƶ" ; z with stroke\r
+dkMacronStroke.item("Z") := "Ƶ" ; Z with stroke\r
+dkMacronStroke.item(" ") := "¯" ; macron\r
+\r
+\r
+; Dead Key : Cedilla/Ogonek\r
+\r
+dkCedillaOgonek := ComObjCreate("Scripting.Dictionary")\r
+dkCedillaOgonek.item("a") := "ą" ; a with ogonek\r
+dkCedillaOgonek.item("A") := "Ą" ; A with ogonek\r
+dkCedillaOgonek.item("c") := "ç" ; c with cedilla\r
+dkCedillaOgonek.item("C") := "Ç" ; C with cedilla\r
+dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla\r
+dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla\r
+dkCedillaOgonek.item("e") := "ę" ; e with ogonek\r
+dkCedillaOgonek.item("E") := "Ę" ; E with ogonek\r
+dkCedillaOgonek.item("ë") := "ȩ" ; e with cedilla\r
+dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla\r
+dkCedillaOgonek.item("g") := "ģ" ; g with cedilla\r
+dkCedillaOgonek.item("G") := "Ģ" ; G with cedilla\r
+dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla\r
+dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla\r
+dkCedillaOgonek.item("i") := "į" ; i with ogonek\r
+dkCedillaOgonek.item("I") := "Į" ; I with ogonek\r
+dkCedillaOgonek.item("k") := "ķ" ; k with cedilla\r
+dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla\r
+dkCedillaOgonek.item("l") := "ļ" ; l with cedilla\r
+dkCedillaOgonek.item("L") := "Ļ" ; L with cedilla\r
+dkCedillaOgonek.item("n") := "ņ" ; n with cedilla\r
+dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla\r
+dkCedillaOgonek.item("o") := "ǫ" ; o with ogonek\r
+dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek\r
+dkCedillaOgonek.item("ö") := "ǭ" ; o with ogonek and macron\r
+dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron\r
+dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla\r
+dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla\r
+dkCedillaOgonek.item("s") := "ş" ; s with cedilla\r
+dkCedillaOgonek.item("S") := "Ş" ; S with cedilla\r
+dkCedillaOgonek.item("t") := "ţ" ; t with cedilla\r
+dkCedillaOgonek.item("T") := "Ţ" ; T with cedilla\r
+dkCedillaOgonek.item("u") := "ų" ; u with ogonek\r
+dkCedillaOgonek.item("U") := "Ų" ; U with ogonek\r
+dkCedillaOgonek.item("w") := "₩" ; South Korean won\r
+dkCedillaOgonek.item("W") := "₩" ; South Korean won\r
+dkCedillaOgonek.item("1") := "–" ; en dash\r
+dkCedillaOgonek.item("2") := "—" ; em dash\r
+dkCedillaOgonek.item("3") := "―" ; horizontal bar\r
+dkCedillaOgonek.item("4") := "‐" ; hyphen\r
+dkCedillaOgonek.item("9") := "‒" ; figure dash\r
+dkCedillaOgonek.item("0") := "" ; soft hyphen\r
+dkCedillaOgonek.item("-") := "‑" ; non-breaking hyphen\r
+dkCedillaOgonek.item(".") := "˛" ; ogonek\r
+dkCedillaOgonek.item(" ") := "¸" ; cedilla\r
+\r
+\r
+; Dead Key : Breve/Special\r
+\r
+dkBreveSpecial := ComObjCreate("Scripting.Dictionary")\r
+dkBreveSpecial.item("a") := "ă" ; a with breve\r
+dkBreveSpecial.item("A") := "Ă" ; A with breve\r
+dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail\r
+dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D\r
+dkBreveSpecial.item("e") := "ĕ" ; e with breve\r
+dkBreveSpecial.item("E") := "Ĕ" ; E with breve\r
+dkBreveSpecial.item("ë") := "ǝ" ; small turned e\r
+dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E\r
+dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani)\r
+dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani)\r
+dkBreveSpecial.item("g") := "ğ" ; g with breve\r
+dkBreveSpecial.item("G") := "Ğ" ; G with breve\r
+dkBreveSpecial.item("é") := "ꬶ" ; cross-tailed g\r
+dkBreveSpecial.item("h") := "ɣ" ; latin small gamma\r
+dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma\r
+dkBreveSpecial.item("i") := "ĭ" ; i with breve\r
+dkBreveSpecial.item("I") := "Ĭ" ; I with breve\r
+dkBreveSpecial.item("j") := "ij" ; ligature ij\r
+dkBreveSpecial.item("J") := "IJ" ; ligature IJ\r
+dkBreveSpecial.item("k") := "ĸ" ; small letter kra\r
+dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma)\r
+dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma)\r
+dkBreveSpecial.item("o") := "ŏ" ; o with breve\r
+dkBreveSpecial.item("O") := "Ŏ" ; O with breve\r
+dkBreveSpecial.item("ö") := "ɔ" ; small open o\r
+dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O\r
+dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian)\r
+dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian)\r
+dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian)\r
+dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian)\r
+dkBreveSpecial.item("u") := "ŭ" ; u with breve\r
+dkBreveSpecial.item("U") := "Ŭ" ; U with breve\r
+dkBreveSpecial.item("v") := "ʊ" ; latin small letter upsilon\r
+dkBreveSpecial.item("V") := "Ʊ" ; latin capital letter upsilon\r
+dkBreveSpecial.item("w") := "ƿ" ; small letter wynn\r
+dkBreveSpecial.item("W") := "Ƿ" ; capital letter wynn\r
+dkBreveSpecial.item("y") := "ȝ" ; small letter yogh\r
+dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh\r
+dkBreveSpecial.item("3") := "ʒ" ; small letter ezh\r
+dkBreveSpecial.item("#") := "Ʒ" ; capital letter ezh\r
+dkBreveSpecial.item(" ") := "˘" ; breve\r
+\r
+\r
+; Dead Key : Acute Accent\r
+\r
+dkAcuteAccent := ComObjCreate("Scripting.Dictionary")\r
+dkAcuteAccent.item("a") := "á" ; a with acute\r
+dkAcuteAccent.item("A") := "Á" ; A with acute\r
+dkAcuteAccent.item("b") := "ɓ" ; b with hook\r
+dkAcuteAccent.item("B") := "Ɓ" ; B with hook\r
+dkAcuteAccent.item("c") := "ć" ; c with acute\r
+dkAcuteAccent.item("C") := "Ć" ; C with acute\r
+dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute\r
+dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute\r
+dkAcuteAccent.item("d") := "ɗ" ; d with hook\r
+dkAcuteAccent.item("D") := "Ɗ" ; D with hook\r
+dkAcuteAccent.item("e") := "é" ; e with acute\r
+dkAcuteAccent.item("E") := "É" ; E with acute\r
+dkAcuteAccent.item("f") := "ƒ" ; f with hook\r
+dkAcuteAccent.item("F") := "Ƒ" ; F with hook\r
+dkAcuteAccent.item("g") := "ǵ" ; g with acute\r
+dkAcuteAccent.item("G") := "Ǵ" ; G with acute\r
+dkAcuteAccent.item("h") := "ɦ" ; h with hook\r
+dkAcuteAccent.item("H") := "Ɦ" ; H with hook\r
+dkAcuteAccent.item("i") := "í" ; i with acute\r
+dkAcuteAccent.item("I") := "Í" ; I with acute\r
+dkAcuteAccent.item("j") := "ij" ; ligature ij\r
+dkAcuteAccent.item("J") := "IJ" ; ligature IJ\r
+dkAcuteAccent.item("k") := "ƙ" ; k with hook\r
+dkAcuteAccent.item("K") := "Ƙ" ; K with hook\r
+dkAcuteAccent.item("l") := "ĺ" ; l with acute\r
+dkAcuteAccent.item("L") := "Ĺ" ; L with acute\r
+dkAcuteAccent.item("m") := "ḿ" ; m with acute\r
+dkAcuteAccent.item("M") := "Ḿ" ; M with acute\r
+dkAcuteAccent.item("n") := "ń" ; n with acute\r
+dkAcuteAccent.item("N") := "Ń" ; N with acute\r
+dkAcuteAccent.item("o") := "ó" ; o with acute\r
+dkAcuteAccent.item("O") := "Ó" ; O with acute\r
+dkAcuteAccent.item("ö") := "ő" ; o with double acute\r
+dkAcuteAccent.item("Ö") := "Ő" ; O with double acute\r
+dkAcuteAccent.item("p") := "ƥ" ; p with hook\r
+dkAcuteAccent.item("P") := "Ƥ" ; P with hook\r
+dkAcuteAccent.item("q") := "ɋ" ; q with hook tail\r
+dkAcuteAccent.item("Q") := "Ɋ" ; Q with hook tail\r
+dkAcuteAccent.item("r") := "ŕ" ; r with acute\r
+dkAcuteAccent.item("R") := "Ŕ" ; R with acute\r
+dkAcuteAccent.item("s") := "ś" ; s with acute\r
+dkAcuteAccent.item("S") := "Ś" ; S with acute\r
+dkAcuteAccent.item("t") := "ƭ" ; t with hook\r
+dkAcuteAccent.item("T") := "Ƭ" ; T with hook\r
+dkAcuteAccent.item("u") := "ú" ; u with acute\r
+dkAcuteAccent.item("U") := "Ú" ; U with acute\r
+dkAcuteAccent.item("ü") := "ű" ; u with double acute\r
+dkAcuteAccent.item("Ü") := "Ű" ; U with double acute\r
+dkAcuteAccent.item("v") := "ʋ" ; v with hook\r
+dkAcuteAccent.item("V") := "Ʋ" ; V with hook\r
+dkAcuteAccent.item("w") := "ẃ" ; w with acute\r
+dkAcuteAccent.item("W") := "Ẃ" ; W with acute\r
+dkAcuteAccent.item("y") := "ý" ; y with acute\r
+dkAcuteAccent.item("Y") := "Ý" ; Y with acute\r
+dkAcuteAccent.item("z") := "ź" ; z with acute\r
+dkAcuteAccent.item("Z") := "Ź" ; Z with acute\r
+dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute\r
+dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute\r
+dkAcuteAccent.item("æ") := "ǽ" ; ae with acute\r
+dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute\r
+dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute\r
+dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute\r
+dkAcuteAccent.item("2") := "♫" ; beamed eighth notes\r
+dkAcuteAccent.item("8") := "♪" ; eighth note\r
+dkAcuteAccent.item("'") := "´" ; acute accent\r
+dkAcuteAccent.item(" ") := "´" ; acute accent\r
+\r
+\r
+; Dead Key : Diaeresis\r
+\r
+dkDiaeresis := ComObjCreate("Scripting.Dictionary")\r
+dkDiaeresis.item("a") := "ä" ; a with diaeresis\r
+dkDiaeresis.item("A") := "Ä" ; A with diaeresis\r
+dkDiaeresis.item("e") := "ë" ; e with diaeresis\r
+dkDiaeresis.item("E") := "Ë" ; E with diaeresis\r
+dkDiaeresis.item("h") := "ḧ" ; h with diaeresis\r
+dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis\r
+dkDiaeresis.item("i") := "ï" ; i with diaeresis\r
+dkDiaeresis.item("I") := "Ï" ; I with diaeresis\r
+dkDiaeresis.item("o") := "ö" ; o with diaeresis\r
+dkDiaeresis.item("O") := "Ö" ; O with diaeresis\r
+dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett)\r
+dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett)\r
+dkDiaeresis.item("t") := "ẗ" ; t with diaeresis\r
+dkDiaeresis.item("u") := "ü" ; u with diaeresis\r
+dkDiaeresis.item("U") := "Ü" ; U with diaeresis\r
+dkDiaeresis.item("w") := "ẅ" ; w with diaeresis\r
+dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis\r
+dkDiaeresis.item("x") := "ẍ" ; x with diaeresis\r
+dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis\r
+dkDiaeresis.item("y") := "ÿ" ; y with diaeresis\r
+dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis\r
+dkDiaeresis.item("""") := "¨" ; diaeresis\r
+dkDiaeresis.item(" ") := "¨" ; diaeresis\r
+\r
+\r
+; Dead Key : Grave Accent\r
+\r
+dkGraveAccent := ComObjCreate("Scripting.Dictionary")\r
+dkGraveAccent.item("a") := "à" ; a with grave\r
+dkGraveAccent.item("A") := "À" ; A with grave\r
+dkGraveAccent.item("e") := "è" ; e with grave\r
+dkGraveAccent.item("E") := "È" ; E with grave\r
+dkGraveAccent.item("i") := "ì" ; i with grave\r
+dkGraveAccent.item("I") := "Ì" ; I with grave\r
+dkGraveAccent.item("n") := "ǹ" ; n with grave\r
+dkGraveAccent.item("N") := "Ǹ" ; N with grave\r
+dkGraveAccent.item("o") := "ò" ; o with grave\r
+dkGraveAccent.item("O") := "Ò" ; O with grave\r
+dkGraveAccent.item("u") := "ù" ; u with grave\r
+dkGraveAccent.item("U") := "Ù" ; U with grave\r
+dkGraveAccent.item("w") := "ẁ" ; w with grave\r
+dkGraveAccent.item("W") := "Ẁ" ; W with grave\r
+dkGraveAccent.item("y") := "ỳ" ; y with grave\r
+dkGraveAccent.item("Y") := "Ỳ" ; Y with grave\r
+dkGraveAccent.item("ä") := "₳" ; Argentine austral\r
+dkGraveAccent.item("Ä") := "₳" ; Argentine austral\r
+dkGraveAccent.item("b") := "₿" ; bitcoin\r
+dkGraveAccent.item("B") := "₿" ; bitcoin\r
+dkGraveAccent.item("c") := "₡" ; Costa Rican colón\r
+dkGraveAccent.item("C") := "₵" ; Ghanaian cedi\r
+dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro\r
+dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro\r
+dkGraveAccent.item("d") := "₫" ; Vietnamese dong\r
+dkGraveAccent.item("D") := "₯" ; Greek drachma\r
+dkGraveAccent.item("f") := "₣" ; French franc\r
+dkGraveAccent.item("F") := "₣" ; French franc\r
+dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní\r
+dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní\r
+dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia\r
+dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia\r
+dkGraveAccent.item("k") := "₭" ; Laotian kip\r
+dkGraveAccent.item("K") := "₭" ; Laotian kip\r
+dkGraveAccent.item("l") := "₺" ; Turkish lira\r
+dkGraveAccent.item("L") := "₾" ; Georgian lari\r
+dkGraveAccent.item("ø") := "₤" ; lira\r
+dkGraveAccent.item("Ø") := "₤" ; lira\r
+dkGraveAccent.item("m") := "₼" ; Azerbaijani manat\r
+dkGraveAccent.item("M") := "₥" ; mill sign\r
+dkGraveAccent.item("ñ") := "₦" ; Nigerian naira\r
+dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira\r
+dkGraveAccent.item("p") := "₱" ; Philippine peso\r
+dkGraveAccent.item("P") := "₱" ; Philippine peso\r
+dkGraveAccent.item("r") := "₹" ; Indian rupee\r
+dkGraveAccent.item("R") := "₽" ; Russian ruble\r
+dkGraveAccent.item("s") := "₪" ; Israeli new shekel\r
+dkGraveAccent.item("S") := "₪" ; Israeli new shekel\r
+dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik)\r
+dkGraveAccent.item("T") := "₸" ; Kazakh tenge\r
+dkGraveAccent.item("å") := "₩" ; South Korean won\r
+dkGraveAccent.item("Å") := "₩" ; South Korean won\r
+dkGraveAccent.item("1") := " " ; en space\r
+dkGraveAccent.item("2") := " " ; em space\r
+dkGraveAccent.item("3") := " " ; three-per-em space\r
+dkGraveAccent.item("4") := " " ; four-per-em space\r
+dkGraveAccent.item("5") := " " ; punctuation space\r
+dkGraveAccent.item("6") := " " ; six-per-em space\r
+dkGraveAccent.item("7") := " " ; thin space\r
+dkGraveAccent.item("8") := " " ; hair space\r
+dkGraveAccent.item("9") := " " ; figure space\r
+dkGraveAccent.item("0") := "" ; zero-width space\r
+dkGraveAccent.item("-") := " " ; non-breaking space\r
+dkGraveAccent.item("!") := " " ; en quad\r
+dkGraveAccent.item("@") := " " ; em quad\r
+dkGraveAccent.item("``") := "``" ; grave accent\r
+dkGraveAccent.item(" ") := "``" ; grave accent\r
+\r
+\r
+; Dead Key : Tilde\r
+\r
+dkTilde := ComObjCreate("Scripting.Dictionary")\r
+dkTilde.item("a") := "ã" ; a with tilde\r
+dkTilde.item("A") := "Ã" ; A with tilde\r
+dkTilde.item("e") := "ẽ" ; e with tilde\r
+dkTilde.item("E") := "Ẽ" ; E with tilde\r
+dkTilde.item("i") := "ĩ" ; i with tilde\r
+dkTilde.item("I") := "Ĩ" ; I with tilde\r
+dkTilde.item("n") := "ñ" ; n with tilde\r
+dkTilde.item("N") := "Ñ" ; N with tilde\r
+dkTilde.item("o") := "õ" ; o with tilde\r
+dkTilde.item("O") := "Õ" ; O with tilde\r
+dkTilde.item("u") := "ũ" ; u with tilde\r
+dkTilde.item("U") := "Ũ" ; U with tilde\r
+dkTilde.item("v") := "ṽ" ; v with tilde\r
+dkTilde.item("V") := "Ṽ" ; V with tilde\r
+dkTilde.item("y") := "ỹ" ; y with tilde\r
+dkTilde.item("Y") := "Ỹ" ; Y with tilde\r
+dkTilde.item("~") := "~" ; tilde\r
+dkTilde.item(" ") := "~" ; tilde\r
+\r
+\r
+; Dead Key : Not Sign\r
+\r
+dkNotSign := ComObjCreate("Scripting.Dictionary")\r
+dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item("b") := "☐" ; ballot box\r
+dkNotSign.item("B") := "☒" ; ballot box with x\r
+dkNotSign.item("c") := "©" ; copyright sign\r
+dkNotSign.item("C") := "¤" ; currency sign\r
+dkNotSign.item("d") := "†" ; dagger\r
+dkNotSign.item("D") := "‡" ; double dagger\r
+dkNotSign.item("e") := "…" ; ellipsis\r
+dkNotSign.item("E") := "℮" ; estimated symbol\r
+dkNotSign.item("f") := "♀" ; Venus symbol (female)\r
+dkNotSign.item("F") := "♀" ; Venus symbol (female)\r
+dkNotSign.item("h") := "♡" ; white heart suit\r
+dkNotSign.item("H") := "♥" ; black heart suit\r
+dkNotSign.item("l") := "ℓ" ; script small l\r
+dkNotSign.item("L") := "ℓ" ; script small l\r
+dkNotSign.item("m") := "♂" ; Mars symbol (male)\r
+dkNotSign.item("M") := "♂" ; Mars symbol (male)\r
+dkNotSign.item("n") := "¬" ; not sign\r
+dkNotSign.item("N") := "¬" ; not sign\r
+dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician)\r
+dkNotSign.item("p") := "¶" ; pilcrow sign\r
+dkNotSign.item("P") := "℗" ; sound recording copyright\r
+dkNotSign.item("r") := "®" ; registered sign\r
+dkNotSign.item("R") := "®" ; registered sign\r
+dkNotSign.item("s") := "§" ; section sign\r
+dkNotSign.item("S") := "℠" ; service mark\r
+dkNotSign.item("t") := "™" ; trademark symbol\r
+dkNotSign.item("T") := "™" ; trademark symbol\r
+dkNotSign.item("v") := "✓" ; check mark\r
+dkNotSign.item("V") := "✔" ; heavy check mark\r
+dkNotSign.item("w") := "☑" ; ballot box with check\r
+dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet\r
+dkNotSign.item("x") := "✗" ; ballot x\r
+dkNotSign.item("X") := "✘" ; heavy ballot x\r
+dkNotSign.item("y") := "☺" ; white smiling face\r
+dkNotSign.item("Y") := "☻" ; black smiling face\r
+dkNotSign.item("1") := "←" ; leftwards arrow\r
+dkNotSign.item("2") := "↓" ; downwards arrow\r
+dkNotSign.item("3") := "↑" ; upwards arrow\r
+dkNotSign.item("4") := "→" ; rightwards arrow\r
+dkNotSign.item("5") := "↖" ; north west arrow\r
+dkNotSign.item("6") := "↙" ; south west arrow\r
+dkNotSign.item("7") := "↗" ; north east arrow\r
+dkNotSign.item("8") := "↘" ; south east arrow\r
+dkNotSign.item("9") := "↕" ; up down arrow\r
+dkNotSign.item("0") := "↨" ; up down arrow with base\r
+dkNotSign.item("=") := "↔" ; left right arrow\r
+dkNotSign.item("!") := "⇐" ; leftwards double arrow\r
+dkNotSign.item("@") := "⇓" ; downwards double arrow\r
+dkNotSign.item("#") := "⇑" ; upwards double arrow\r
+dkNotSign.item("$") := "⇒" ; rightwards double arrow\r
+dkNotSign.item("%") := "⇖" ; north west double arrow\r
+dkNotSign.item("^") := "⇙" ; south west double arrow\r
+dkNotSign.item("&") := "⇗" ; north east double arrow\r
+dkNotSign.item("*") := "⇘" ; south east double arrow\r
+dkNotSign.item("(") := "⇕" ; up down double arrow\r
+dkNotSign.item(")") := "↲" ; downwards arrow with tip leftwards\r
+dkNotSign.item("+") := "⇔" ; left right double arrow\r
+dkNotSign.item(".") := "•" ; bullet\r
+dkNotSign.item("-") := "⁃" ; hyphen bullet\r
+dkNotSign.item("\") := "⁞" ; vertical four dots\r
+dkNotSign.item("|") := "⁞" ; vertical four dots\r
+dkNotSign.item(" ") := "¬" ; not sign\r
+\r
+\r
+; Dead Key : Broken Bar\r
+\r
+dkBrokenBar := ComObjCreate("Scripting.Dictionary")\r
+dkBrokenBar.item("a") := "ɑ" ; latin small letter alpha\r
+dkBrokenBar.item("A") := "Ɑ" ; latin capital letter alpha\r
+dkBrokenBar.item("ä") := "ɒ" ; latin small letter turned alpha\r
+dkBrokenBar.item("Ä") := "Ɒ" ; latin capital letter turned alpha\r
+dkBrokenBar.item("c") := "ƈ" ; c with hook\r
+dkBrokenBar.item("C") := "Ƈ" ; C with hook\r
+dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon)\r
+dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon)\r
+dkBrokenBar.item("f") := "❦" ; floral heart\r
+dkBrokenBar.item("F") := "❧" ; rotated floral heart bullet\r
+dkBrokenBar.item("g") := "ɠ" ; g with hook\r
+dkBrokenBar.item("G") := "Ɠ" ; G with hook\r
+dkBrokenBar.item("h") := "ꜧ" ; small letter heng\r
+dkBrokenBar.item("H") := "Ꜧ" ; capital letter heng\r
+dkBrokenBar.item("ù") := "ɧ" ; small letter heng with hook\r
+dkBrokenBar.item("k") := "ḱ" ; k with acute\r
+dkBrokenBar.item("K") := "Ḱ" ; K with acute\r
+dkBrokenBar.item("n") := "ɲ" ; n with left hook\r
+dkBrokenBar.item("N") := "Ɲ" ; N with left hook\r
+dkBrokenBar.item("o") := "ơ" ; o with horn\r
+dkBrokenBar.item("O") := "Ơ" ; O with horn\r
+dkBrokenBar.item("p") := "ṕ" ; p with acute\r
+dkBrokenBar.item("P") := "Ṕ" ; P with acute\r
+dkBrokenBar.item("s") := "ʃ" ; small letter esh\r
+dkBrokenBar.item("S") := "Ʃ" ; capital letter esh\r
+dkBrokenBar.item("ß") := "ſ" ; small long s\r
+dkBrokenBar.item("u") := "ư" ; u with horn\r
+dkBrokenBar.item("U") := "Ư" ; U with horn\r
+dkBrokenBar.item("v") := "ʌ" ; latin small letter turned v\r
+dkBrokenBar.item("V") := "Ʌ" ; latin capital letter turned V\r
+dkBrokenBar.item("w") := "ⱳ" ; w with hook\r
+dkBrokenBar.item("W") := "Ⱳ" ; W with hook\r
+dkBrokenBar.item("y") := "ƴ" ; y with hook\r
+dkBrokenBar.item("Y") := "Ƴ" ; Y with hook\r
+dkBrokenBar.item("z") := "ȥ" ; z with hook\r
+dkBrokenBar.item("Z") := "Ȥ" ; Z with hook\r
+dkBrokenBar.item("1") := "№" ; numero sign\r
+dkBrokenBar.item("2") := "½" ; vulgar fraction 1/2\r
+dkBrokenBar.item("3") := "⅓" ; vulgar fraction 1/3\r
+dkBrokenBar.item("4") := "¼" ; vulgar fraction 1/4\r
+dkBrokenBar.item("5") := "⅔" ; vulgar fraction 2/3\r
+dkBrokenBar.item("6") := "¾" ; vulgar fraction 3/4\r
+dkBrokenBar.item("7") := "⅛" ; vulgar fraction 1/8\r
+dkBrokenBar.item("8") := "⅜" ; vulgar fraction 3/8\r
+dkBrokenBar.item("9") := "⅝" ; vulgar fraction 5/8\r
+dkBrokenBar.item("0") := "⅞" ; vulgar fraction 7/8\r
+dkBrokenBar.item("\") := "¦" ; broken bar\r
+dkBrokenBar.item("|") := "¦" ; broken bar\r
+dkBrokenBar.item(" ") := "¦" ; broken bar\r
+\r
+\r
+; Dead Key : Greek Alphabet\r
+\r
+dkGreekAlphabet := ComObjCreate("Scripting.Dictionary")\r
+dkGreekAlphabet.item("a") := "α" ; small alpha\r
+dkGreekAlphabet.item("A") := "Α" ; capital alpha\r
+dkGreekAlphabet.item("b") := "β" ; small beta\r
+dkGreekAlphabet.item("B") := "Β" ; capital beta\r
+dkGreekAlphabet.item("v") := "β" ; small beta\r
+dkGreekAlphabet.item("V") := "Β" ; capital beta\r
+dkGreekAlphabet.item("g") := "γ" ; small gamma\r
+dkGreekAlphabet.item("G") := "Γ" ; capital gamma\r
+dkGreekAlphabet.item("d") := "δ" ; small delta\r
+dkGreekAlphabet.item("D") := "Δ" ; capital delta\r
+dkGreekAlphabet.item("e") := "ε" ; small epsilon\r
+dkGreekAlphabet.item("E") := "Ε" ; capital epsilon\r
+dkGreekAlphabet.item("z") := "ζ" ; small zeta\r
+dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta\r
+dkGreekAlphabet.item("h") := "η" ; small eta\r
+dkGreekAlphabet.item("H") := "Η" ; capital eta\r
+dkGreekAlphabet.item("j") := "θ" ; small theta\r
+dkGreekAlphabet.item("J") := "Θ" ; capital theta\r
+dkGreekAlphabet.item("i") := "ι" ; small iota\r
+dkGreekAlphabet.item("I") := "Ι" ; capital iota\r
+dkGreekAlphabet.item("k") := "κ" ; small kappa\r
+dkGreekAlphabet.item("K") := "Κ" ; capital kappa\r
+dkGreekAlphabet.item("l") := "λ" ; small lambda\r
+dkGreekAlphabet.item("L") := "Λ" ; capital lambda\r
+dkGreekAlphabet.item("m") := "μ" ; small mu\r
+dkGreekAlphabet.item("M") := "Μ" ; capital mu\r
+dkGreekAlphabet.item("n") := "ν" ; small nu\r
+dkGreekAlphabet.item("N") := "Ν" ; capital nu\r
+dkGreekAlphabet.item("x") := "ξ" ; small xi\r
+dkGreekAlphabet.item("X") := "Ξ" ; capital xi\r
+dkGreekAlphabet.item("o") := "ο" ; small omikron\r
+dkGreekAlphabet.item("O") := "Ο" ; capital omikron\r
+dkGreekAlphabet.item("p") := "π" ; small pi\r
+dkGreekAlphabet.item("P") := "Π" ; capital pi\r
+dkGreekAlphabet.item("r") := "ρ" ; small rho\r
+dkGreekAlphabet.item("R") := "Ρ" ; capital rho\r
+dkGreekAlphabet.item("s") := "σ" ; small sigma\r
+dkGreekAlphabet.item("S") := "Σ" ; capital sigma\r
+dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position\r
+dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position\r
+dkGreekAlphabet.item("t") := "τ" ; small tau\r
+dkGreekAlphabet.item("T") := "Τ" ; capital tau\r
+dkGreekAlphabet.item("u") := "υ" ; small upsilon\r
+dkGreekAlphabet.item("U") := "Υ" ; capital upsilon\r
+dkGreekAlphabet.item("y") := "υ" ; small upsilon\r
+dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon\r
+dkGreekAlphabet.item("f") := "φ" ; small phi\r
+dkGreekAlphabet.item("F") := "Φ" ; capital phi\r
+dkGreekAlphabet.item("c") := "χ" ; small chi\r
+dkGreekAlphabet.item("C") := "Χ" ; capital chi\r
+dkGreekAlphabet.item("w") := "ψ" ; small psi\r
+dkGreekAlphabet.item("W") := "Ψ" ; capital psi\r
+dkGreekAlphabet.item("q") := "ω" ; small omega\r
+dkGreekAlphabet.item("Q") := "Ω" ; capital omega\r
+dkGreekAlphabet.item("1") := "¹" ; superscript 1\r
+dkGreekAlphabet.item("2") := "²" ; superscript 2\r
+dkGreekAlphabet.item("3") := "³" ; superscript 3\r
+dkGreekAlphabet.item("4") := "⁴" ; superscript 4\r
+dkGreekAlphabet.item("5") := "⁵" ; superscript 5\r
+dkGreekAlphabet.item("6") := "⁶" ; superscript 6\r
+dkGreekAlphabet.item("7") := "⁷" ; superscript 7\r
+dkGreekAlphabet.item("8") := "⁸" ; superscript 8\r
+dkGreekAlphabet.item("9") := "⁹" ; superscript 9\r
+dkGreekAlphabet.item("0") := "⁰" ; superscript 0\r
+dkGreekAlphabet.item("-") := "⁻" ; superscript -\r
+dkGreekAlphabet.item("=") := "⁼" ; superscript =\r
+dkGreekAlphabet.item("+") := "⁺" ; superscript +\r
+dkGreekAlphabet.item("[") := "⁽" ; superscript (\r
+dkGreekAlphabet.item("]") := "⁾" ; superscript )\r
+dkGreekAlphabet.item("!") := "₁" ; subscript 1\r
+dkGreekAlphabet.item("@") := "₂" ; subscript 2\r
+dkGreekAlphabet.item("#") := "₃" ; subscript 3\r
+dkGreekAlphabet.item("$") := "₄" ; subscript 4\r
+dkGreekAlphabet.item("%") := "₅" ; subscript 5\r
+dkGreekAlphabet.item("^") := "₆" ; subscript 6\r
+dkGreekAlphabet.item("&") := "₇" ; subscript 7\r
+dkGreekAlphabet.item("*") := "₈" ; subscript 8\r
+dkGreekAlphabet.item("(") := "₉" ; subscript 9\r
+dkGreekAlphabet.item(")") := "₀" ; subscript 0\r
+dkGreekAlphabet.item(";") := "₋" ; subscript -\r
+dkGreekAlphabet.item("'") := "₌" ; subscript =\r
+dkGreekAlphabet.item("""") := "₊" ; subscript +\r
+dkGreekAlphabet.item("{") := "₍" ; subscript (\r
+dkGreekAlphabet.item("}") := "₎" ; subscript )\r
+dkGreekAlphabet.item(".") := "µ" ; micro sign\r
+dkGreekAlphabet.item(" ") := "μ" ; small mu\r
+\r
+\r
+; Dead Key : Math Symbols\r
+\r
+dkMathSymbols := ComObjCreate("Scripting.Dictionary")\r
+dkMathSymbols.item("a") := "∀" ; for all\r
+dkMathSymbols.item("A") := "∀" ; for all\r
+dkMathSymbols.item("b") := "⊆" ; subset of or equal to\r
+dkMathSymbols.item("B") := "⊇" ; superset of or equal to\r
+dkMathSymbols.item("c") := "∝" ; proportional to\r
+dkMathSymbols.item("C") := "ℂ" ; complex numbers\r
+dkMathSymbols.item("d") := "∆" ; increment operator\r
+dkMathSymbols.item("D") := "∇" ; nable/del operator\r
+dkMathSymbols.item("e") := "∃" ; there exists\r
+dkMathSymbols.item("E") := "∄" ; there does not exist\r
+dkMathSymbols.item("f") := "ƒ" ; f with hook\r
+dkMathSymbols.item("F") := "∎" ; end of proof\r
+dkMathSymbols.item("g") := "⊂" ; subset of\r
+dkMathSymbols.item("G") := "⊄" ; not a subset of\r
+dkMathSymbols.item("h") := "⊃" ; superset of\r
+dkMathSymbols.item("H") := "⊅" ; not a superset of\r
+dkMathSymbols.item("i") := "∞" ; infinity symbol\r
+dkMathSymbols.item("I") := "∞" ; infinity symbol\r
+dkMathSymbols.item("k") := "∋" ; contains as member\r
+dkMathSymbols.item("K") := "∌" ; does not contain as member\r
+dkMathSymbols.item("l") := "∥" ; parallel to\r
+dkMathSymbols.item("L") := "∦" ; not parallel to\r
+dkMathSymbols.item("m") := "∈" ; element of\r
+dkMathSymbols.item("M") := "∉" ; not an element of\r
+dkMathSymbols.item("n") := "ⁿ" ; superscript n\r
+dkMathSymbols.item("N") := "ℕ" ; natural numbers\r
+dkMathSymbols.item("o") := "∘" ; ring operator\r
+dkMathSymbols.item("O") := "∅" ; empty set\r
+dkMathSymbols.item("p") := "∂" ; partial differential\r
+dkMathSymbols.item("P") := "ℙ" ; prime numbers\r
+dkMathSymbols.item("q") := "ℚ" ; rational numbers\r
+dkMathSymbols.item("Q") := "ℚ" ; rational numbers\r
+dkMathSymbols.item("r") := "√" ; square root\r
+dkMathSymbols.item("R") := "ℝ" ; real numbers\r
+dkMathSymbols.item("s") := "∩" ; set intersection\r
+dkMathSymbols.item("S") := "∫" ; integral symbol\r
+dkMathSymbols.item("u") := "∪" ; set union\r
+dkMathSymbols.item("U") := "∖" ; set minus\r
+dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow\r
+dkMathSymbols.item("Z") := "ℤ" ; whole numbers\r
+dkMathSymbols.item("1") := "≠" ; not equal to\r
+dkMathSymbols.item("!") := "≠" ; not equal to\r
+dkMathSymbols.item("2") := "√" ; square root\r
+dkMathSymbols.item("3") := "∛" ; cube root\r
+dkMathSymbols.item("4") := "∜" ; fourth root\r
+dkMathSymbols.item("5") := "‰" ; per mille sign\r
+dkMathSymbols.item("%") := "‱" ; per ten thousand sign\r
+dkMathSymbols.item("6") := "℘" ; script capital p\r
+dkMathSymbols.item("^") := "℘" ; script capital p\r
+dkMathSymbols.item("7") := "∧" ; logical and\r
+dkMathSymbols.item("&") := "∧" ; logical and\r
+dkMathSymbols.item("8") := "⊗" ; tensor product\r
+dkMathSymbols.item("*") := "⊗" ; tensor product\r
+dkMathSymbols.item("9") := "∟" ; right angle\r
+dkMathSymbols.item("0") := "∠" ; angle symbol\r
+dkMathSymbols.item(")") := "∡" ; measured angle\r
+dkMathSymbols.item("``") := "≈" ; almost equal to\r
+dkMathSymbols.item("~") := "≈" ; almost equal to\r
+dkMathSymbols.item(",") := "≤" ; less-than or equal to\r
+dkMathSymbols.item("<") := "≤" ; less-than or equal to\r
+dkMathSymbols.item(".") := "≥" ; greater-than or equal to\r
+dkMathSymbols.item(">") := "≥" ; greater-than or equal to\r
+dkMathSymbols.item("-") := "±" ; plus-minus sign\r
+dkMathSymbols.item("_") := "⊖" ; circled minus\r
+dkMathSymbols.item("=") := "≝" ; equal to by definition\r
+dkMathSymbols.item("+") := "⊕" ; exclusive or\r
+dkMathSymbols.item(";") := "∵" ; because sign\r
+dkMathSymbols.item(":") := "∴" ; therefore sign\r
+dkMathSymbols.item("\") := "∨" ; logical or\r
+dkMathSymbols.item("|") := "∨" ; logical or\r
+dkMathSymbols.item(" ") := "√" ; square root\r
+\r
+\r
+; Configuration : Right Alt on US QWERTY\r
+\r
+>!a::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ä ; A with diaeresis\r
+ else\r
+ Send ä ; a with diaeresis\r
+return\r
+>!+a::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ä ; a with diaeresis\r
+ else\r
+ Send Ä ; A with diaeresis\r
+return\r
+\r
+>!z::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send À ; A with grave\r
+ else\r
+ Send à ; a with grave\r
+return\r
+>!+z::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send à ; a with grave\r
+ else\r
+ Send À ; A with grave\r
+return\r
+\r
+>!x::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Á ; A with acute\r
+ else\r
+ Send á ; a with acute\r
+return\r
+>!+x::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send á ; a with acute\r
+ else\r
+ Send Á ; A with acute\r
+return\r
+\r
+>!q::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Æ ; letter AE\r
+ else\r
+ Send æ ; letter ae\r
+return\r
+>!+q::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send æ ; letter ae\r
+ else\r
+ Send Æ ; letter AE\r
+return\r
+\r
+>!w::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Å ; A with ring above\r
+ else\r
+ Send å ; a with ring above\r
+return\r
+>!+w::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send å ; a with ring above\r
+ else\r
+ Send Å ; A with ring above\r
+return\r
+\r
+>!c::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ç ; C with cedilla\r
+ else\r
+ Send ç ; c with cedilla\r
+return\r
+>!+c::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ç ; c with cedilla\r
+ else\r
+ Send Ç ; C with cedilla\r
+return\r
+\r
+>!d::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ð ; capital letter eth\r
+ else\r
+ Send ð ; small letter eth\r
+return\r
+>!+d::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ð ; small letter eth\r
+ else\r
+ Send Ð ; capital letter eth\r
+return\r
+\r
+>!e::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ë ; E with diaeresis\r
+ else\r
+ Send ë ; e with diaeresis\r
+return\r
+>!+e::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ë ; e with diaeresis\r
+ else\r
+ Send Ë ; E with diaeresis\r
+return\r
+\r
+>!f::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send È ; E with grave\r
+ else\r
+ Send è ; e with grave\r
+return\r
+>!+f::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send è ; e with grave\r
+ else\r
+ Send È ; E with grave\r
+return\r
+\r
+>!g::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send É ; E with acute\r
+ else\r
+ Send é ; e with acute\r
+return\r
+>!+g::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send é ; e with acute\r
+ else\r
+ Send É ; E with acute\r
+return\r
+\r
+>!i::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ï ; I with diaeresis\r
+ else\r
+ Send ï ; i with diaeresis\r
+return\r
+>!+i::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ï ; i with diaeresis\r
+ else\r
+ Send Ï ; I with diaeresis\r
+return\r
+\r
+>!v::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ì ; I with grave\r
+ else\r
+ Send ì ; i with grave\r
+return\r
+>!+v::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ì ; i with grave\r
+ else\r
+ Send Ì ; I with grave\r
+return\r
+\r
+>!b::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Í ; I with acute\r
+ else\r
+ Send í ; i with acute\r
+return\r
+>!+b::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send í ; i with acute\r
+ else\r
+ Send Í ; I with acute\r
+return\r
+\r
+>!o::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ö ; O with diaeresis\r
+ else\r
+ Send ö ; o with diaeresis\r
+return\r
+>!+o::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ö ; o with diaeresis\r
+ else\r
+ Send Ö ; O with diaeresis\r
+return\r
+\r
+>!,::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ò ; O with grave\r
+ else\r
+ Send ò ; o with grave\r
+return\r
+>!<::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ò ; o with grave\r
+ else\r
+ Send Ò ; O with grave\r
+return\r
+\r
+>!.::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ó ; O with acute\r
+ else\r
+ Send ó ; o with acute\r
+return\r
+>!>::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ó ; o with acute\r
+ else\r
+ Send Ó ; O with acute\r
+return\r
+\r
+>!k::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Œ ; ligature OE\r
+ else\r
+ Send œ ; ligature oe\r
+return\r
+>!+k::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send œ ; ligature oe\r
+ else\r
+ Send Œ ; ligature OE\r
+return\r
+\r
+>!l::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ø ; O with stroke\r
+ else\r
+ Send ø ; o with stroke\r
+return\r
+>!+l::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ø ; o with stroke\r
+ else\r
+ Send Ø ; O with stroke\r
+return\r
+\r
+>!n::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ñ ; N with tilde\r
+ else\r
+ Send ñ ; n with tilde\r
+return\r
+>!+n::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ñ ; n with tilde\r
+ else\r
+ Send Ñ ; N with tilde\r
+return\r
+\r
+>!t::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Þ ; capital letter thorn\r
+ else\r
+ Send þ ; small letter thorn\r
+return\r
+>!+t::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send þ ; small letter thorn\r
+ else\r
+ Send Þ ; capital letter thorn\r
+return\r
+\r
+>!u::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ü ; U with diaeresis\r
+ else\r
+ Send ü ; u with diaeresis\r
+return\r
+>!+u::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ü ; u with diaeresis\r
+ else\r
+ Send Ü ; U with diaeresis\r
+return\r
+\r
+>!h::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ù ; U with grave\r
+ else\r
+ Send ù ; u with grave\r
+return\r
+>!+h::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ù ; u with grave\r
+ else\r
+ Send Ù ; U with grave\r
+return\r
+\r
+>!j::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ú ; U with acute\r
+ else\r
+ Send ú ; u with acute\r
+return\r
+>!+j::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ú ; u with acute\r
+ else\r
+ Send Ú ; U with acute\r
+return\r
+\r
+>!y::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ÿ ; Y with diaeresis\r
+ else\r
+ Send ÿ ; y with diaeresis\r
+return\r
+>!+y::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ÿ ; y with diaeresis\r
+ else\r
+ Send Ÿ ; Y with diaeresis\r
+return\r
+\r
+>!r::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send Ý ; Y with acute\r
+ else\r
+ Send ý ; y with acute\r
+return\r
+>!+r::\r
+ if GetKeyState("CapsLock", "T")\r
+ Send ý ; y with acute\r
+ else\r
+ Send Ý ; Y with acute\r
+return\r
+\r
+>!p::Send † ; dagger\r
+>!+p::Send ‡ ; double dagger\r
+\r
+>!s::Send ß ; small sharp s (Eszett)\r
+>!+s::Send § ; section sign\r
+\r
+>!/::Send ¿ ; inverted question mark\r
+>!?::Send ¶ ; pilcrow sign\r
+\r
+>!1::Send ¡ ; inverted exclamation mark\r
+>!+1::Send ¹ ; superscript 1\r
+\r
+>!2::Send © ; copyright sign\r
+>!+2::Send ² ; superscript 2\r
+\r
+>!3::Send ± ; plus-minus sign\r
+>!+3::Send ³ ; superscript 3\r
+\r
+>!4::Send £ ; pound sign\r
+>!+4::Send ¥ ; yen sign\r
+\r
+>!5::Send € ; euro sign\r
+>!+5::Send ¢ ; cent sign (dollar)\r
+\r
+>!8::Send „ ; double low-9 quotation mark\r
+>!+8::Send ‚ ; single low-9 quotation mark\r
+\r
+>!9::Send “ ; left double quotation mark\r
+>!+9::Send ‘ ; left single quotation mark\r
+\r
+>!0::Send ” ; right double quotation mark\r
+>!+0::Send ’ ; right single quotation mark\r
+\r
+>!=::Send × ; multiplication sign\r
+>!+=::Send ÷ ; division sign\r
+\r
+>![::Send « ; left-pointing double angle quotation mark\r
+>!{::Send ‹ ; left-pointing single angle quotation mark\r
+\r
+>!]::Send » ; right-pointing double angle quotation mark\r
+>!}::Send › ; right-pointing single angle quotation mark\r
+\r
+>!;::Send ° ; degree sign\r
+>!+;::Send · ; middle dot\r
+\r
+>!6::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkCircumflex.item(key)\r
+return\r
+>!+6::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkCaron.item(key)\r
+return\r
+\r
+>!7::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkRingDotAbove.item(key)\r
+return\r
+>!+7::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkMacronStroke.item(key)\r
+return\r
+\r
+>!-::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkCedillaOgonek.item(key)\r
+return\r
+>!_::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkBreveSpecial.item(key)\r
+return\r
+\r
+>!'::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkAcuteAccent.item(key)\r
+return\r
+>!"::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkDiaeresis.item(key)\r
+return\r
+\r
+>!`::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkGraveAccent.item(key)\r
+return\r
+>!~::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkTilde.item(key)\r
+return\r
+\r
+>!\::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkNotSign.item(key)\r
+return\r
+>!|::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkBrokenBar.item(key)\r
+return\r
+\r
+>!m::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkGreekAlphabet.item(key)\r
+return\r
+>!+m::\r
+ Input, key, L1, {bs}{del}{esc}{home}{end}\r
+ Send % dkMathSymbols.item(key)\r
+return\r
+\r
+>!space::Send ; non-breaking space\r
+>!+space::Send ; non-breaking space\r